<script>
export default {
  onLaunch: async function (options) {
    // 动态引入微信JS-SDK
    const script = document.createElement('script')
    script.src = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js'
    script.onload = async () => {
      try {
        // 从后端接口获取微信配置参数（需替换为你的实际接口）
        // 正确获取接口响应数据
        const [err, res] = await uni.request({
          url: '/api/wx/getsignatureconf',
          data: {
            url: window.location.href.split('#')[0]
          }
        })

// 先判断请求是否成功（无错误）
        if (err) {
          console.error('接口请求失败:', err)
          return
        }

// 接口返回的状态码是否正常（通常 200 为成功）
        if (res.statusCode !== 200) {
          console.error('接口返回异常:', res.statusCode, res.data)
          return
        }

// 此时 res.data 才是后端返回的实际数据
        console.log('接口返回数据:', res.data)
        const {appId, timestamp, nonceStr, signature} = res.data
        const realSignature = this.extractSignature(signature)
        console.log(realSignature)
        // 配置微信JS-SDK
        wx.config({
          debug: false, // 生产环境建议关闭调试
          appId,
          timestamp,
          nonceStr,
          realSignature,
          jsApiList: ['clearCache'] // 声明需要使用的接口
        })

        // 配置成功后执行清除缓存操作
        wx.ready(() => {
          if (typeof wx.clearCache === 'function') {
            wx.clearCache(() => {
              console.log('微信客户端缓存清除成功')
            })
          } else {
            console.warn('当前微信版本不支持clearCache接口')
          }
        })

        // 配置失败处理
        wx.error((err) => {
          console.error('微信JS-SDK配置失败:', err)
        })
      } catch (error) {
        console.error('微信JS-SDK初始化失败:', error)
      }
    }
    document.head.appendChild(script)
  },
  onShow: function () {
    //console.log('App Show')
  },
  onHide: function () {
    //console.log('App Hide')
  },
  methods: {
    extractSignature(str) {
      // 去除字符串前后的无关部分（WxJsapiSignature( 和 )）
      const content = str.replace(/^WxJsapiSignature\(|\)$/g, '');
      // 按逗号分割成键值对数组（处理可能的空格）
      const pairs = content.split(',').map(item => item.trim());
      // 遍历键值对，找到signature的值
      for (const pair of pairs) {
        const [key, value] = pair.split('=').map(item => item.trim());
        if (key === 'signature') {
          return value;
        }
      }
      // 若未找到返回null
      return null;
    }
  }
}
</script>

<style>
/*每个页面公共css */
@import "./static/css/app.css";
</style>